<?php

namespace app\admin\controller;

use think\Db;
use think\Request;


class Category extends Admin
{

    // 查询数据
    public function index()
    {
        $a = '0,';

        $data = DB::table('category')->where('path','like',$a)->select();

        return view('admin@category/categoryList',['data' => $data]);
    }


    // 跳转添加数据页面
    public function add()
    {
        // $data = DB::table('category')->select();

        // var_dump($data);die;
        return view('admin@category/add');
    }

    // 保存数据
    public function save(Request $req)
    {
        // foreach ($data as $k => $v) {
        //     $a = $v['path'].$v['id'];
        //     var_dump($a);

        // }

        // 接收数据
        $data = $req->get();
        // var_dump($data);die;

        // 密码加密
        $data['pid'] = 0;
        $data['path'] = '0,';

        // 执行sql
        $result = Db::table('category')->data($data)->insert();

        // 返回结果
        if ($result > 0) {

             return $this->success('添加成功..', url('admin/Category/index'));

        } else {

             return $this->error('添加失败,请重试...');

        }

    }

    // 添加子分类
    public function addcation($id)
    {
        return view('admin@category/addcation',['id' => $id]);
    }

    // 保存数据
    public function doaddcation(Request $req)
    {

        $data = $req->get();
        // var_dump($data);
        $id = $data['id'];
        $res = DB::table('category')->where('id',$id)->find();

        $a = $res['path'].$id.',';
        // var_dump($res,$a);
        // 凑完整数据
        $b = [
        'name' => $data['name'],
        'pid' => $id,
        'path' => $a,
        'display' => $data['display']
        ];

        // 执行sql
        $result = Db::table('category')->data($b)->insert();

        // 返回结果
        if ($result > 0) {

             return $this->success('添加成功..', url('admin/Category/index'));

        } else {

             return $this->error('添加失败,请重试...');

        }
    }

    // 查看子分类
    public function checkcation($id)
    {
        $a = '%,'.$id.',';
        // var_dump($a);die;
        $data = DB::table('category')->where('path','like',$a)->select();

        return view('admin@category/checkcation',['data' => $data]);
    }


    // 查询语句
    public function find($id)
    {
        // 查询
        $data = Db::table('category')->field(['categorypass'],true)->find($id);

        // 跳转
        return view('admin@category/edit', ['data' => $data]);

    }


    // 修改管理员资料
    public function updata(Request $request)
    {

        // 接收数据
        $data = $request->post();

        // 获取id
        $id = $request->post('id');
        // var_dump($id);die;

        // 加密
        $data['pass'] = md5($request->post('pass'));

        // var_dump($data);die;
        // 执行sql语句
        $result = Db::table('category')->where('id', $id)->update($data);

        // 返回
       if ($result > 0) {

           return $this->success('保存成功..', url('admin/Category/index'));

       } else {

           return $this->error('保存失败,请重试...');

       }
    }



    // 跳转分配角色页面
    public function role($id)
    {

        // 查询角色数据
        $sql = DB::table('role')
                ->field(['create_time'],true)
                ->where('status = 1')
                ->select();


        return view('admin@category/role',['data' => $sql,'uid'=>$id]);


    }



     // 提交分配角色
    public function doRole(Request $request)
    {

        // 接收数据
        $data = $request->post();
        // var_dump($data);die;
        $uid = $data['uid'];
        $rid = $data['role_id'];

        // 删除数据
        $res = Db::table('category_role')->where($uid.'=uid')->delete();

        if (!empty($rid)) {

            foreach ($rid as $v) {

                $data = [
                    'role_id' => $v,
                    'uid' => $uid,
                ];

            //插入数据
            $res = DB::table('category_role') ->data($data)->insert();

            }
        }


        // 返回结果
        if ($res > 0) {

             return $this->success('角色已分配!', url('admin/Category/index'));

        } else {

             return $this->error('角色分配失败,请重试...');

        }

    }



    // 删除分类
    public function del_category($id)
    {

        $id = input('id');
        // var_dump($id);die;
        
        $data = DB::table('category')->where('pid',$id)->select();
        // var_dump($data);die;

        if ($data != null) {

            return json("改分类有子级分类");

        }


        // 删除角色
        $res = Db::table('category')->where('id ='.$id)->delete();

        // 返回结果
        if ($res > 0) {

             return json("删除成功！");

        } else {

             return json("删除失败！");

        }

    }



}


